home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 24 / Amiga Format AFCD24 (Feb 1998, Issue 108).iso / -in_the_mag- / emulation / amiga / uae-0.7.0b2 / src / od-amiga / joystick.c < prev    next >
C/C++ Source or Header  |  1998-01-20  |  1KB  |  58 lines

  1.  /* 
  2.   * UAE - The Un*x Amiga Emulator
  3.   * 
  4.   * Joystick emulation for AmigaOS
  5.   * 
  6.   * Copyright 1996, 1997 Samuel Devulder
  7.   */
  8.  
  9. #include "sysconfig.h"
  10. #include "sysdeps.h"
  11.  
  12. #include "config.h"
  13. #include "options.h"
  14. #include "memory.h"
  15. #include "custom.h"
  16. #include "joystick.h"
  17.  
  18. int nr_joysticks;
  19.  
  20. #include <hardware/custom.h>
  21. #include <hardware/cia.h>
  22.  
  23. #define CIAAPRA 0xBFE001 
  24. #define CUSTOM  0xDFF000
  25.  
  26. static struct Custom *custom= (struct Custom*) CUSTOM;
  27. static struct CIA *cia = (struct CIA *) CIAAPRA;
  28.  
  29. void read_joystick(int nr, unsigned int *dir, int *button)
  30. {
  31.     int bot, right, top, left, joy,fire;
  32.     
  33.     *dir = 0;
  34.     *button = 0;
  35.     if (nr >= nr_joysticks) return;
  36.  
  37.     joy   = custom->joy1dat;
  38.     fire  = !( cia->ciapra & 0x0080 ) ? 1 : 0;
  39.  
  40.     right = (joy & 0x0002) ? 1 : 0;
  41.     left  = (joy & 0x0200) ? 1 : 0;
  42.     bot   = (joy & 0x0001) ? 1 : 0;
  43.     top   = (joy & 0x0100) ? 1 : 0;
  44.     
  45.     *button = fire;
  46.     *dir = bot | (right << 1) | (top << 8) | (left << 9);
  47. }
  48.  
  49. void init_joystick(void)
  50. {
  51.     nr_joysticks = 1;
  52. }
  53.  
  54. void close_joystick(void)
  55. {
  56. }
  57.  
  58.